console.log(1)  // 同步代码
setTimeout(() => {  // 位于宏任务中的立即执行
    console.log(2)  
    process.nextTick(() => { // node 微任务
        console.log(3)  
    })
    // 实例化过程 函数会同步执行
    new Promise((resolve) => {
        console.log(4)  // 同步
        resolve();  // 将then 函数放入 event loop微任务中排队 下个轮询可以执行
    // then 返回 promise 实例
    }).then(()=> {  // event loop 微任务 实例resolve时
        console.log(5)
    })
})

const promise = new Promise((resolve) => {
    console.log(7); // 同步
    resolve();
}) // 同步代码
promise.then(() => {
    console.log(8)
})
process.nextTick(() => { // 微任务
    console.log(6)  
})

setTimeout(() => { // 宏任务
    console.log(9)
    process.nextTick(() => { // 微任务
        console.log(10)  
    })
    new Promise((resolve) => {
        console.log(11)
        resolve()
    }).then(() => {
        console.log(12)
    })
})